import axios from "axios";
import {Message} from "element-ui";


const http = axios.create({
  baseURL: '/api'
})

const http2 = axios.create({
  baseURL: 'http://localhost:8080'
})


axios.defaults.baseURL = 'http://localhost:8080'

axios.defaults.withCredentials = true

// 请求拦截器


// 请求拦截器
axios.interceptors.request.use(function (config) {
  // 发送请求的相关逻辑
  // config:对象  与 axios.defaults 相当
  // 借助config配置token
  var token = localStorage.getItem('token')
  // let userinfo = window.sessionStorage.getItem('userinfo')
  // 判断token存在再做配置
  if (token) {
    // let token = JSON.parse(userinfo).token
    // 注意：token前边有 'Bearer ' 的信息前缀,API接口需求，Bearer后边有空格
    config.headers.token = token
  }
  return config
}, function (error) {
  // Do something with request error
  return Promise.reject(error)
})


// 后置拦截  怎么个处理
axios.interceptors.response.use(response => {

    // console.log(response.headers.get("content-type"))

    if (response.headers.get("content-type") === "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8") {
      console.log('有文件')
      return response
    }

    //拿到前端的Result
    let res = response.data;

    if (res.code === 200) {
      //正常
      // console.log("全局拦截正常")
      return response
    }

    if (res.code === 400) {
      console.log("400" + response.data)
      // location.reload()
      return response
    }

    if (res.code === 401 || res.code === 402) {
      console.log("用户或密码错误")
      // location.reload()
      return response
    }

  },
  // 如果前端没有接收到result 因为 后端通过Assert已经 error  也就是处理服务器error的情况
  //例如 登录的时候 查询database中的账号 查不到的时候
  error => {
    // console.log(error)
    // //当data不为空  表示 该异常被后端封装了data的时候 就赋值
    console.log(error.response)
    if (error.response.status === 400) {
      Message({
        message: '结果为空',
        type: 'error'
      });
    }

    if (error.response.data.msg)
      Message({
        message: error.response.data.msg,
        type: 'error'
      });
    if (error.response.status === 403) {
      Message({
        message: '权限不足',
        type: 'error'
      });
    }


    //
    // //401/402登录失败（后的权限）
    // if (error.response.status === 401 || error.response.status === 402) {
    //   // Notify({ type: 'warning', message: error.message+' 😢' });
    //   return
    // }
    //
    // //除了401的错误  都直接 友好提示
    // Notify({ type: 'warning', message: error.message +' 😢' });
    // return Promise.reject(error)
    if (error.response.status === 401) {
      return
    }
    // console.log(error)
    // return(error)
    return Promise.reject(error);
  }
)


export default http
